import request from "@/utils/request";

/**
 * 用户登录
 * @param {Object} data - 登录信息
 * @param {string} data.username - 用户名
 * @param {string} data.password - 密码
 * @returns {Promise}
 */
export function login_API(query) {
  return request({
    url: "/ht/t_admin/log_in",
    // method: "post",
    params: query,
  });
}

/**
 * 获取用户信息
 * @returns {Promise}
 */
export function getInfo() {
  return request({
    url: "/user/info",
    method: "get",
  });
}

/**
 * 用户登出
 * @returns {Promise}
 */
export function logout() {
  return request({
    url: "/user/logout",
    method: "post",
  });
}

/**
 * 获取用户列表
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function getUserList(params) {
  return request({
    url: "/user/list",
    method: "get",
    params,
  });
}

/**
 * 获取用户详情
 * @param {string} id - 用户ID
 * @returns {Promise}
 */
export function getUserDetail(id) {
  return request({
    url: `/user/${id}`,
    method: "get",
  });
}

/**
 * 添加用户
 * @param {Object} data - 用户信息
 * @returns {Promise}
 */
export function addUser(data) {
  return request({
    url: "/user",
    method: "post",
    data,
  });
}

/**
 * 更新用户
 * @param {string} id - 用户ID
 * @param {Object} data - 用户信息
 * @returns {Promise}
 */
export function updateUser(id, data) {
  return request({
    url: `/user/${id}`,
    method: "put",
    data,
  });
}

/**
 * 删除用户
 * @param {string} id - 用户ID
 * @returns {Promise}
 */
export function deleteUser(id) {
  return request({
    url: `/user/${id}`,
    method: "delete",
  });
}

/**
 * 批量删除用户
 * @param {Array} ids - 用户ID数组
 * @returns {Promise}
 */
export function batchDeleteUsers(ids) {
  return request({
    url: "/user/batch",
    method: "delete",
    data: { ids },
  });
}

/**
 * 修改用户状态
 * @param {string} id - 用户ID
 * @param {Object} data - 状态信息
 * @returns {Promise}
 */
export function updateUserStatus(id, data) {
  return request({
    url: `/user/${id}/status`,
    method: "put",
    data,
  });
}

/**
 * 重置用户密码
 * @param {string} id - 用户ID
 * @param {Object} data - 新密码
 * @returns {Promise}
 */
export function resetUserPassword(id, data) {
  return request({
    url: `/user/${id}/password`,
    method: "put",
    data,
  });
}

/**
 * 更新个人信息
 * @param {Object} data - 用户信息
 * @returns {Promise}
 */
export function updateProfile(data) {
  return request({
    url: "/user/profile",
    method: "put",
    data,
  });
}

/**
 * 更新个人密码
 * @param {Object} data - 新密码
 * @returns {Promise}
 */
export function updatePassword(data) {
  return request({
    url: "/user/password",
    method: "put",
    data,
  });
}

/**
 * 获取医生列表
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function getDoctorList(params) {
  return request({
    url: "/user/doctors",
    method: "get",
    params,
  });
}

/**
 * 获取商家列表
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function getBusinessList(params) {
  return request({
    url: "/user/business",
    method: "get",
    params,
  });
}

/**
 * 更新用户角色
 * @param {string} id - 用户ID
 * @param {Object} data - 角色信息
 * @returns {Promise}
 */
export function updateUserRole(id, data) {
  return request({
    url: `/user/${id}/role`,
    method: "put",
    data,
  });
}

// 管理员相关API

/**
 * 获取管理员列表
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function getAdminList(params) {
  return request({
    url: "/user/admin/list",
    method: "get",
    params,
  });
}

/**
 * 获取管理员详情
 * @param {string} id - 管理员ID
 * @returns {Promise}
 */
export function getAdminDetail(id) {
  return request({
    url: `/user/admin/${id}`,
    method: "get",
  });
}

/**
 * 添加管理员
 * @param {Object} data - 管理员信息
 * @returns {Promise}
 */
export function addAdmin(data) {
  return request({
    url: "/user/admin",
    method: "post",
    data,
  });
}

/**
 * 更新管理员信息
 * @param {string} id - 管理员ID
 * @param {Object} data - 管理员信息
 * @returns {Promise}
 */
export function updateAdmin(id, data) {
  return request({
    url: `/user/admin/${id}`,
    method: "put",
    data,
  });
}

/**
 * 删除管理员
 * @param {string} id - 管理员ID
 * @returns {Promise}
 */
export function deleteAdmin(id) {
  return request({
    url: `/user/admin/${id}`,
    method: "delete",
  });
}

/**
 * 更新管理员状态
 * @param {string} id - 管理员ID
 * @param {Object} data - 状态信息
 * @returns {Promise}
 */
export function updateAdminStatus(id, data) {
  return request({
    url: `/user/admin/${id}/status`,
    method: "put",
    data,
  });
}

/**
 * 重置管理员密码
 * @param {string} id - 管理员ID
 * @param {Object} data - 新密码
 * @returns {Promise}
 */
export function resetAdminPassword(id, data) {
  return request({
    url: `/user/admin/${id}/password`,
    method: "put",
    data,
  });
}
